/**
 * Devuelve un array de enteros ordenado mediante el algoritmo CocktailSort.
 */
package tools.arrays;

/**
 *
 * @author Félix Marín Ramírez | felixmurcia@gmail.com
 * @version 1.0
 */
public class OrdenarCocktail implements java.io.Serializable {

    /**
     *
     * @param vector Array que es pasado como argumento desde el main al método
     * cocktailSort.
     * @return Devuelve un array de enteros ordenado mediante el algoritmo
     * CocktailSort.
     */
    public int[] cocktailSort(int[] vector) {
        boolean comprobador = true;
        int izquierda = 0; // VARABLE QUE ALMACENA LOS VALORES DEL VECTOR DE IZQUIERDA A DERECHA
        int derecha = vector.length - 1;//// VARABLE QUE ALMACENA LOS VALORES DEL VECTOR DE DERECHA A IZQUIERDA
        while (izquierda < derecha && comprobador) {
            comprobador = false;
            for (int i = izquierda; i < derecha; i++) {
                if (vector[i] > vector[i + 1]) {
                    int aux = vector[i];
                    vector[i] = vector[i + 1];
                    vector[i + 1] = aux;
                    comprobador = true;
                }//Fin del if (i)
            }//Fin del for (i)
            derecha--;
            if (comprobador) {
                comprobador = false;
                for (int k = derecha; k > izquierda; k--) {
                    if (vector[k] < vector[k - 1]) {
                        int aux = vector[k];
                        vector[k] = vector[k - 1];
                        vector[k - 1] = aux;
                        comprobador = true;
                    }//Fin del if que está dentro del for (k)
                }//Fin del for (k)
            }//Fin del if (k)
            izquierda++;
        }//Fin del while
        return vector;
    }//Fin del método cocktailSort
}//Fin de la clase Ej4FelixMarin
